#include "app_um2004a.h"
#include "um2004a.h"
//#include "app_led.h"
//#include "delay.h"
//#include "app_gtimer.h"

//extern uint8_t um2004a_rxbyte_flag;

uint8_t recv_crc[13] = {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C};

/***********************************************************************************************************
 * Function		: app_um2004a_init
 * Description	: app_um2004a_init
 * Input		: none
 * Output		: none
 * Return		: none
 ***********************************************************************************************************/
void app_um2004a_init(void)
{
	
	um2004a_spi_init();
	
    app_um2004a_idle();
    
    um2004a_init();
	
    while(um2004a_read_reg(0x27) != 0x03);
    while(um2004a_read_reg(0x4a) != 0x4a);
    
    um2004a_read_regs();
    
    um2004a_write_reg(0x52,0x01);
	
	app_um2004a_idle();
	
	app_um2004a_rx();
    
}
/***********************************************************************************************************
 * Function		: app_um2004a_idle
 * Description	: IDLE
 * Input		: none
 * Output		: none
 * Return		: none
 ***********************************************************************************************************/
void app_um2004a_idle(void)
{
	um2004a_write_reg(0x51,0x00);
	
}
/***********************************************************************************************************
 * Function		: app_um2004a_sleep
 * Description	: sleep
 * Input		: none
 * Output		: none
 * Return		: none
 ***********************************************************************************************************/
void app_um2004a_sleep(void)
{
	um2004a_write_reg(0x51,0x00);
	um2004a_write_reg(0x50,0x01);
}
/***********************************************************************************************************
 * Function		: app_um2004a_rx
 * Description	: rx
 * Input		: none
 * Output		: none
 * Return		: none
 ***********************************************************************************************************/
void app_um2004a_rx(void)
{
	um2004a_write_reg(0x51,0x04);
	um2004a_data_io_set(INPUT);
}
/***********************************************************************************************************
 * Function		: app_um2004a_run
 * Description	: app_um2004a_run
 * Input		: none
 * Output		: none
 * Return		: none
 ***********************************************************************************************************/
void app_um2004a_run(void)
{
	uint8_t recv_buff[16] = {0};
	uint8_t i;
//	if(app_gtimer_get_count()>200)
//	{
//		app_close_led();
//		app_close_buzzer();
//	}

	
//	if(um2004a_rxbyte_flag != 0)
	{
//		um2004a_rxbyte_flag = 0;

		for(i=0;i<13;i++)
		{
			recv_buff[i] = um2004a_read_reg(0x60+i);
		}
		
//		print2Debug("\n\rrecv data: ");
		
		for(i=0;i<13;i++)
		{
//			print2Debug("0x%02X\t",recv_buff[i]);
		}
		
//		app_open_led();
//		app_open_buzzer();
//		app_gtimer_set_count(0);
		
		app_um2004a_idle();
		
		app_um2004a_rx();
		
		um2004a_write_reg(0x52,0x01);
		
	}
	
}
